{
  "properties" : { },
  "id" : "1c28a44e8593422faeef8c2873428cea",
  "script" : null,
  "groupId" : "eb8eea2f91144d378a4ce1f444f5691d",
  "name" : "验证码",
  "createTime" : null,
  "updateTime" : 1731323301078,
  "lock" : "1",
  "createBy" : null,
  "updateBy" : null,
  "path" : "/captcha",
  "method" : "GET",
  "parameters" : [ {
    "name" : "timeStr",
    "value" : "1731296971798",
    "description" : null,
    "required" : false,
    "dataType" : "String",
    "type" : null,
    "defaultValue" : null,
    "validateType" : null,
    "error" : null,
    "expression" : null,
    "children" : null
  } ],
  "options" : [ {
    "name" : "require_login",
    "value" : "false",
    "description" : "该接口需要登录才允许访问",
    "required" : false,
    "dataType" : "String",
    "type" : null,
    "defaultValue" : null,
    "validateType" : null,
    "error" : null,
    "expression" : null,
    "children" : null
  } ],
  "requestBody" : "",
  "headers" : [ ],
  "paths" : [ ],
  "responseBody" : "{\n    \"code\": 400,\n    \"message\": \"path[timeStr]为必填项\",\n    \"data\": null,\n    \"timestamp\": 1731297466145,\n    \"executeTime\": 1\n}",
  "description" : null,
  "requestBodyDefinition" : null,
  "responseBodyDefinition" : null
}
================================
import cn.hutool.captcha.LineCaptcha
import cn.hutool.captcha.CaptchaUtil
import log
import java.io.ByteArrayOutputStream
import java.io.OutputStream
import org.ssssssss.magicboot.model.CodeCacheMap

CircleCaptcha captcha = CaptchaUtil.createLineCaptcha(80, 40, 4, 4);
var uuid = UUID.randomUUID().toString().replace('-', '')
CodeCacheMap.put(uuid, captcha.getCode())
OutputStream bOut = new ByteArrayOutputStream();
captcha.write(bOut)
var bytes = bOut.toByteArray()
return {
    img: bytes,
    uuid: uuid
}